package com.basic.java.threads.extendthread;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * 多线程下载图片类
 * 创建时间：2022/4/12 23:00
 *
 * @author gejin
 */
public class DowLoadPicture extends Thread {
    private String url; // 定义一个图片路径
    private String name; // 定义一个图片名称

    // 构造方法参入路径和名称
    public DowLoadPicture(String url, String name) {
        this.url = url;
        this.name = name;
    }

    // 重写run 方法
    @Override
    public void run() {
        // 实例化下载器对象
        DownLoader downLoader = new DownLoader();
        // 调用下载方法
        downLoader.downLoader(url, name);
    }

    public static void main(String[] args) {
        // 创建线程
        DowLoadPicture t1 = new DowLoadPicture("https://profile.csdnimg.cn/3/6/A/1_qq_33369905", "1.jpg");
        DowLoadPicture t2 = new DowLoadPicture("https://img-blog.csdnimg.cn/239f17ac1f5c40febdef440bfe795992.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP546L5pu-5piv5bCR5bm0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center", "2.jpg");
        DowLoadPicture t3 = new DowLoadPicture("https://img-blog.csdnimg.cn/d5bac1327dab45e3995d61505f56a4c6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP546L5pu-5piv5bCR5bm0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center", "3.jpg");
        // 启动线程
        t1.start();
        t2.start();
        t3.start();
    }
}

/**
 * 下载器类
 */
class DownLoader {
    /**
     * 下载器方法
     *
     * @param url  图片地址
     * @param name 图片名称
     */
    public void downLoader(String url, String name) {
        try {
            FileUtils.copyURLToFile(new URL(url), new File(name));
            System.out.println("下载了文件：" + name);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件下载失败，在downLoader 执行抛出异常");
        }
    }
}
